home *** CD-ROM | disk | FTP | other *** search
- # Routine to "compile" a .py file to a .pyc file.
- # This has intimate knowledge of how Python/import.c does it.
- # By Sjoerd Mullender (I forced him to write it :-).
-
- import imp
- MAGIC = imp.get_magic()
-
- def wr_long(f, x):
- f.write(chr( x & 0xff))
- f.write(chr((x >> 8) & 0xff))
- f.write(chr((x >> 16) & 0xff))
- f.write(chr((x >> 24) & 0xff))
-
- def compile(file, cfile = None):
- import os, marshal, __builtin__
- f = open(file)
- codestring = f.read()
- f.close()
- timestamp = long(os.stat(file)[8])
- codeobject = __builtin__.compile(codestring, file, 'exec')
- if not cfile:
- cfile = file + 'c'
- fc = open(cfile, 'wb')
- fc.write(MAGIC)
- wr_long(fc, timestamp)
- marshal.dump(codeobject, fc)
- fc.close()
- if os.name == 'mac':
- import macfs
- macfs.FSSpec(cfile).SetCreatorType('Pyth', 'PYC ')
- macfs.FSSpec(file).SetCreatorType('Pyth', 'TEXT')
-